先複習一下昨天客製化的結果:
看起來已經有模有樣了呢!但距離我們終極的目標 —— 將 vim
打造成 IDE 還有很長一段路要走呢~
今天就著重於外觀,將我們的 IDE 的稍微改造一下吧~
Plug 'arcticicestudio/nord-vim'
不論是在 Vistual Studio Code
或是在 vim
我都最喜歡 Nord
這款外觀!
安裝完後只需要在 vim
設定檔指定安裝好的主題就可以了~ (當然你也可以選用不同的主題)
let g:airline_theme='nord'
Plug 'vim-airline/vim-airline'
一般的 IDE 底部都會有個狀態列,包含當前的行數、字數,語言甚至是 git
的分支,都會在狀態列下顯示。
當然也有人為 vim
做了個強大的狀態列顯示插件,他稱為 airline
!
它支援了不僅檔案種類、行數、字數等這些基本的資訊,還整合了包含 nerdtree
、vim-gitgutter
這些許多人使用的套件,讓狀態列的顯示更為完整。
為了符合我們的主題 powerlevel9k
,我們開啟 powerline fonts 的設定吧。
let g:airline_powerline_fonts=1
我們也在上方加入標籤,這樣未來就方便切換檔案進行編輯啦~
let g:airline#extensions#tabline#enabled=1
加入了這個設定後,我們就可以在 vim
視窗的上方看到標籤列了!
不過標籤列最右方的
buffers
是什麼意思呢?編輯器在開啟檔案的時候,通常都會將檔案複製一份到暫存器 (buffer),再由暫存器進行讀寫,存檔時再將暫存器所代表的檔案覆蓋過去哦!所以當
IDE
幫你開啟檔案時,並不是直接對檔案進行操作。
你可以做個小實驗,用兩個簡單的文字編輯器開啟同一個檔案,當 A 編輯器更改後存檔時,B 編輯器的檔案並不會更新,因為兩個編輯器所使用的暫存檔不同。
當然有些軟體會自動偵測檔案的變更,不過執行的策略可能就分成:
- 將檔案更新,遺失原先在這個軟體編輯的內容。
- 提醒使用者檔案已變更,是否要將目前的內容儲存。
在 vim
當中的暫存檔案都是以 .swp
(swap file) 作為暫存檔案,vim 8
是儲存在相同的位置底下,到了 NeoVim
則是統一放在 ~/.local/share/nvim/swap
資料夾底下。
因為我比較笨拙,怕忘了在 .gitignore
中加入 .swp
,不小心也將暫存檔加進 commit
,所以這點我比較喜歡 NeoVim
的配置~
雖然開啟了標籤的設定,可是要怎麼切換標籤啊?
先給大家看看切換的指令唄。
指令 | 功能 |
---|---|
:bnext |
後一個暫存 |
:bprevious |
前一個暫存 |
:bfirst |
第一個暫存 |
:blast |
最後一個暫存 |
:b1 |
第 1 個暫存 |
:1bn |
跳下 1 個暫存 |
:b <buffer-name> |
切換到指定的暫存 |
:bd |
關閉當前的暫存 |
當然輸入指令切換也不是很費功夫,只是我真的很懶所以也寫好了快捷鍵 orz...
nnoremap <Leader>[ :bprevious<CR>
nnoremap <Leader>] :bnext<CR>
nnoremap <Leader>1 :bfirst<CR>
nnoremap <Leader>2 :bfirst<CR>:bn<CR>
nnoremap <Leader>3 :bfirst<CR>:2bn<CR>
nnoremap <Leader>4 :bfirst<CR>:3bn<CR>
nnoremap <Leader>5 :bfirst<CR>:4bn<CR>
nnoremap <Leader>6 :bfirst<CR>:5bn<CR>
nnoremap <Leader>7 :bfirst<CR>:6bn<CR>
nnoremap <Leader>8 :bfirst<CR>:7bn<CR>
nnoremap <Leader>9 :blast<CR>
nnoremap <Leader>w :bd<CR>
大概就是
\
+ [
去前一個暫存\
+ ]
去後一個暫存\
+ 數字鍵 (1 ~ 8) 去特定的暫存\
+ 9 去最後一個暫存\
+ w
關閉當前暫存因為 nerdtree
也包含在 buffers
裡面,根據開啟的順序會影響到切換的結果,所以數字鍵切換是先到第一個再去指定的暫存。
可是顏色和風格怎麼和我們的主題格格不入?
Plug 'vim-airline/vim-airline-theme'
那有什麼問題,我們馬上藉由 airline-theme
這個套件來更改外觀!這是一個包含了各式各樣 airline
主題的套件,所有的主題會放在套件資料夾底下的 vim-airline-theme/autoload/airline/themes/
裡面,當中就有 base16_nord.vim
這個主題啦!
馬上來套用看看。
let g:airline_theme='nord'
當然也可以試著切換看看其他的主題~這邊給大家看看官方所有主題的截圖
乍看之下還以為這是 VS Code 呢!之後就繼續介紹其他的套件吧~